Node-RED 基础
本页介绍在 OV20i 摄像头系统中实现的 Node-RED,阐述有助于您创建强大检测工作流的关键概念与特性。
Node-RED 是什么?
Node-RED 是一个基于流的编程工具,提供浏览器端编辑器,用于直观地连接硬件设备、API 和在线服务。最初由 IBM 开发,如今已发展为一个开源项目,提供低代码的自动化和数据处理方案。
OV20i 摄像头将 Node-RED 作为其自动化平台,使您在几乎无需编码经验的情况下创建复杂的检测工作流。通过简单的拖放界面,您可以快速开发本来需要大量编程专业知识的复杂逻辑。
Node-RED 的关键概念
流程
流程是自动化流程的可视化表示。每个流程由通过导线连接的节点组成,表示数据在系统中的传输方式。OV20i 摄像头使用流程来处理检测结果并与外部系统通信。
节点
节点是您流程的构建块,每个节点表示特定的功能或能力:
- 输入节点 - 接收数据(例如相机触发、HTTP 请求)
- 处理节点 - 转换或分析数据(例如分类逻辑)
- 输出节点 - 将数据发送到外部系统或触发操作(例如 PLC 通信)
消息
节点通过传递消息相互通信。在 OV20i 系统中,这些消息通常包含:
- 检测结果
- 关于被检测对象的元数据
- 外部系统的指令
- 触发信号
上下文存储
Node-RED 提供了一种在不同节点之间共享信息而无需依赖通过流程传递的消息的方法。
特定上下文值的 'scope'(作用域)决定了谁可以访问它:
作用域类型 | 可见性 | 用例 |
---|---|---|
Node Context | 仅对设置该值的节点可见 | 存储节点特定的临时状态信息 |
Flow Context | 对同一流程(选项卡)上的所有节点可见 | 在同一流程内的节点之间共享数据 |
Global Context | 跨所有流程对所有节点可见 | 应用级状态或配置 |
上下文存储的好处
- 数据持久化 - 在消息流之间存储数据
- 作用域灵活性 - 不同级别的数据共享
- 状态管理 - 跨节点维护应用状态
部署按钮
Node-RED 中的部署按钮允许您应用并将配置推送到运行时环境。
部署选项:
- 完全部署(Full Deploy) - 更新所有节点和流程
- 修改的节点(Modified Nodes) - 仅更新已修改的节点
- 修改的流程(Modified Flows) - 仅更新包含修改节点的流程
导入与导出
Node-RED 允许将流程配置导出和导入为 JSON 文件,便于:
- 备份相机配置
- 在团队成员之间共享流程
- 在不同相机之间移动配置
Export Process
- 打开摄像头的 Node-RED Editor
- 选择要导出的 flows
- 点击菜单按钮并选择 "导出"
- 选择 JSON 格式
Import Process
- 打开摄像头的 Node-RED Editor
- 点击菜单按钮并选择 "Import"
- 粘贴 JSON 数据或上传 JSON 文件
- 点击 "Import" 以整合配置
- 部署以应用新流程
Debug
目的与功能
调试节点在 Node-RED 编辑器的 Debug 侧边栏显示消息,便于开发和排查检查流程。
关键特性
- 在 Debug 侧边栏中显示结构化消息视图
- 关于消息时序和来源的详细信息
- 能够在工作区中定位源节点
- 切换以启用/禁用调试输出
Dashboard Capabilities
The Node-RED Dashboard provides a web-based interface for monitoring and controlling your camera system through a customizable UI.
Key Components
- Layout Manager - 组织 UI 组件
- UI Nodes - 添加特定界面元素
- Theme Customization - 个性化外观
Common UI Elements
- Buttons - 触发诸如配方变更之类的操作
- Charts - 随时间变化的检查指标可视化
- Gauges - 在一个范围内监控数值
- Text displays - 显示当前摄像头状态
- Sliders - 实时调整参数
Steps to Create a Dashboard
- Add UI Nodes to Flows - 将 UI Nodes 从调色板拖放到流程中,以定义要在仪表板中包含的数据和控件
- Configure UI Nodes - 配置每个 UI 节点的属性,如标签、取值范围和数据源
- Arrange Components - 使用布局管理器在仪表板上排列 UI 组件,创建一个逻辑清晰、易于使用的布局
- Deploy and Access Dashboard - 部署您的流程并通过导航到相应的 URL(通常
http://\{hostname\}/ui
)来访问 Dashboard
Working with Node-RED in the OV20i
Accessing the Editor
OV20i 摄像头中的 Node-RED 编辑器可以通过 UI 访问。
Default Flow
OV20i 附带一个预配置的默认 Flow,用于处理基本检查操作。这为自定义配置提供了起点,并演示了摄像头集成的最佳实践。
OV20i Custom Nodes
该摄像头在 Node-RED 上扩展了面向视觉应用的专用节点:
- Classification Logic - 处理分类结果
- PLC Format - 为工业控制器格式化数据
- Final Pass/Fail - 确定检查结果
Integration Capabilities
OV20i 中的 Node-RED 环境支持与多种工业系统的集成:
- PLCs via Ethernet/IP, Profinet, or Modbus
- MQTT for IoT 应用
- HTTP/REST for web services
- 数据库系统用于数据日志记录
- HMI 接口用于操作员控制
Best Practices
Flow Organization
- 按功能将流程组织起来
- 使用注释记录复杂逻辑
- 清晰命名节点以指示其用途
- 使用子流程(subflows)来实现重复模式
性能考虑
- 在生产环境中尽量减少调试节点的数量
- 考虑高频触发的影响
- 高效使用上下文变量
- 部署前进行全面测试
备份策略
- 定期导出并保存您的流程
- 记录您的配置变更
- 为团队环境考虑版本控制
- 在投入生产使用前测试已还原的流程